The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.
A scripting language is a programing language for writing computer programs in the form of scripts. Examples of scripting languages include JavaScript or ECMAScript, ActionScript, Dart, VBScript, Typescript, Ruby, and Python. A script is a program distributed as source code and executed by interpretation rather than compilation. Interpretation is advantageous because deployment and customization are simplified. These advantages make scripting well suited for adding custom behaviors to an already installed application, such as a web browser. Browser support has made JavaScript the most widely used programing language for the Internet.
Execution by interpretation may also present drawbacks for a scripting language. Since a script is distributed to a browser as source code, security and intellectual property are heightened concerns. Source code is vulnerable to reverse engineering, copying, spoofing, and cracking. For example, when script source code is delivered to a browser, malicious programs can alter the script source code for malicious purposes, such as capturing passwords, bank information, and other sensitive information, causing the browser to execute the maliciously altered script source code rather than the original script source code that the server computer generated. Algorithms and data are difficult to hide when source code is publicized.
Machine analysis is an important part of misuse of source code. For example, internet bots programmed to run automated tasks, compromised endpoints, or malicious software may attempt to read and analyze source code for malicious purposes. To achieve security by obscurity, techniques are needed to prevent or encumber machine analysis of scripts.